#include <bits/stdc++.h>

using namespace std;

long long int a1[100010] , c[100010] , a[260][100010];
bool d[5000][100010];

int main()
{
	freopen("arena.in" , "r" , stdin);
	freopen("arena.out" , "w" , stdout);
	int n , m;
	cin >> n >> m;
	for (int i = 1 ; i <= n ; i++)
	{
		cin >> a1[i];
	}
	for (int i = 1 ; i <= m ; i++)
	{
		cin >> c[i];
	}
	int k;
	for (int i = 0 ; ; i++)
	{
		if (pow(2 , i) >= n)
		{
			k = i;
			break;
		}
	}
	for (int i = 1 ; i <= k ; i++)
	{
		for (int j = 1 ; j <= pow(2 , k - i) ; j++)
		{
			char zifu;
			cin >> zifu;
			if (zifu == '0')
				d[i][j] = false;
			else
				d[i][j] = true;
		}
	}
	int T;
	cin >> T;
	for (int i = 1 ; i <= T ; i++)
	{
		int X[10];
		for (int j = 1 ; j <= 4 ; j++)
		{
			cin >> X[j];
			a[i][j] = a1[j] ^ X[j] % 4; 
		}
		long long sum = a[i][1];
		for (long long j = 2 ; j <= m ; j++)
		{
			sum ^= j * a[i][j];
		}
		cout << sum << endl;
	}
	return 0;
}
